package com.avicsafety.ezsystem.pdf;

/**
 * 文字块
 * by shili at 2018-7-28
 */
public class Block {

    /**字体编号 正文**/
    public static final int FONT_CODE_CONTENT = 10001;

    /**字体编号 大标题**/
    public static final int FONT_CODE_TITLE = 10002;

    /**字体编号 文书编号**/
    public static final int FONT_CODE_DOC_CODE = 10003;

    /**字体编号 正文带下划线**/
    public static final int FONT_CODE_CONTENT_UNDERLINE = 10004;

    /**内容*/
    private String content;

    /**坐标X*/
    private Float x;

    /**坐标Y*/
    private Float y;

    /**该字体是否包含下划线*/
    private Boolean hasUnderLine;

    /**头部缩进数量*/
    private Integer headIndentNum = 0;

    /**尾部缩进数量*/
    private Integer footIndentNum = 0;

    /**文字区块容量 超过这个容量 将被裁减或另附页**/
    private Integer size;

    /**是否包含附页*/
    private Boolean hasAttachment;

    /**连接附页文字  例如:（接续页xx） 其中的 xx 将会被大写的页码 例如 三 替换掉*/
    private String linkAttachmentText;

    /** 当前块每行的字数, 可以单独设置**/
    private Integer rowSize;

    /** 字体编码*/
    private int fontCode = 10001;


    /**
     * 文字块
     * @param content 文字内容
     * @param x X坐标
     * @param y Y坐标
     * @param fontCode 字体编号
     * @param headIndentNum 头部缩进数量 一个中文两个字节
     * @param footIndentNum 尾部缩进数量
     * @param size 文字区块容量 超过这个容量 江北裁减或者另附页 一个中文 两个字节
     * @param hasAttachment 是否允许附页 如果不允许 超出部分 剪裁掉
     * @param linkAttachmentText 通往附页的文字 例如:（接续页xx） 其中的 xx 将会被大写的页码 例如 三 替换掉
     * @param rowSize 每行的文字数量
     */
    public Block(String content, Float x, Float y, Integer fontCode, Integer headIndentNum, Integer footIndentNum, Integer size, Boolean hasAttachment, String linkAttachmentText, Integer rowSize) {
        this.content = content;
        this.x = x;
        this.y = y;
        this.hasUnderLine = hasUnderLine;
        this.headIndentNum = headIndentNum;
        this.footIndentNum = footIndentNum;
        this.size = size;
        this.hasAttachment = hasAttachment;
        this.linkAttachmentText = linkAttachmentText;
        this.rowSize = rowSize;
        this.fontCode = fontCode;
    }

    /**
     * 建立一个简单的文字块 这个文字块 不换行 不附页 正文字体
     * @param content 文字内容
     * @param x X坐标
     * @param y Y坐标
     */
    public Block(String content, Float x, Float y){
        this(content,x,y,1);
    };

    /**
     * 建立一个简单的文字块 可以指定字体 这个文字块 不换行 不附页
     * @param content 文字内容
     * @param x X坐标
     * @param y Y坐标
     * @param fontCode 字体编码
     */
    public Block(String content, Float x, Float y, Integer fontCode){
        this(content,x,y,fontCode,0,0,999,false,"",0);
    };

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Float getX() {
        return x;
    }

    public void setX(Float x) {
        this.x = x;
    }

    public Float getY() {
        return y;
    }

    public void setY(Float y) {
        this.y = y;
    }

    public Boolean getHasUnderLine() {
        return hasUnderLine;
    }

    public void setHasUnderLine(Boolean hasUnderLine) {
        this.hasUnderLine = hasUnderLine;
    }

    public Integer getHeadIndentNum() {
        return headIndentNum;
    }

    public void setHeadIndentNum(Integer headIndentNum) {
        this.headIndentNum = headIndentNum;
    }

    public Integer getFootIndentNum() {
        return footIndentNum;
    }

    public void setFootIndentNum(Integer footIndentNum) {
        this.footIndentNum = footIndentNum;
    }

    public Integer getSize() {
        return size;
    }

    public void setSize(Integer size) {
        this.size = size;
    }

    public Boolean getHasAttachment() {
        return hasAttachment;
    }

    public void setHasAttachment(Boolean hasAttachment) {
        this.hasAttachment = hasAttachment;
    }

    public String getLinkAttachmentText() {
        return linkAttachmentText;
    }

    public void setLinkAttachmentText(String linkAttachmentText) {
        this.linkAttachmentText = linkAttachmentText;
    }

    public Integer getRowSize() {
        return rowSize;
    }

    public void setRowSize(Integer rowSize) {
        this.rowSize = rowSize;
    }

    public int getFontCode() {
        return fontCode;
    }

    public void setFontCode(int fontCode) {
        this.fontCode = fontCode;
    }
}
